// SPDX-License-Identifier: MIT
pragma solidity 0.8.19;

interface IPool {
    enum Status {
        FUNDRAISING,
        LAUNCHED,
        FINISHED
    }

    event Deposit(address user, uint256 amount);

    function currentStatus() external view returns (Status);
    function ACLManager() external view returns (address);
    function baseToken() external view returns (address);
    function investmentManager() external view returns (address);
    function deposits(address user) external view returns (uint256);
    function depositsAmount() external view returns (uint256);
    function returnedAmount() external view returns (uint256);

    function deposit(uint256 amount) external;
    function withdraw() external;

    function launchPool() external;
    function finishPool() external;
}
